package uk.ac.ebi.velvet.processor;

import java.util.List;
import java.util.Map;

public interface MinCutoffStrategy {

	/**
	 * 
	 * @param cov2Score
	 * @return
	 */
	public abstract Integer calculateMinCutoff(MinimumCutoffInformation information);
	
	
	public static class MinimumCutoffInformation{
		private Map<Integer, List<Integer>> cov2Score;
		private Integer coverageMaxLength;
		private Integer maxLength;
		private Long totalLength;
		private Integer expectedCoverage;
		public Map<Integer, List<Integer>> getCov2Score() {
			return cov2Score;
		}
		public void setCov2Score(Map<Integer, List<Integer>> cov2Score) {
			this.cov2Score = cov2Score;
		}
		public Integer getCoverageMaxLength() {
			return coverageMaxLength;
		}
		public void setCoverageMaxLength(Integer coverageMaxLength) {
			this.coverageMaxLength = coverageMaxLength;
		}
		public Integer getMaxLength() {
			return maxLength;
		}
		public void setMaxLength(Integer maxLength) {
			this.maxLength = maxLength;
		}
		public Long getTotalLength() {
			return totalLength;
		}
		public void setTotalLength(Long totalLength) {
			this.totalLength = totalLength;
		}
		public Integer getExpectedCoverage() {
			return expectedCoverage;
		}
		public void setExpectedCoverage(Integer expectedCoverage) {
			this.expectedCoverage = expectedCoverage;
		}		
		
	}

}